Increasing advances in computer technology (e.g., microprocessor speed, memory capacity, data transfer bandwidth, software functionality, and the like) have generally contributed to enhanced computer application in various industries. Ever more powerful server systems, which are often configured as an array of servers, are commonly provided to service requests originating from external sources such as the World Wide Web, for example.
As software systems have become more complicated, it has become common to build such systems from a plurality of objects and files. For example, a software system may include hundreds of files or objects, wherein building a software or application system can be undertaken on one or more build machines that can compile, assemble, link, and/or interpret files or objects. Typically, object-oriented computing is based upon the object model, wherein pieces of code called “objects” contain data (e.g., attributes) and may have actions (e.g., operations) performed thereon. An object can be defined by its interface, wherein the interface defines the characteristics and behavior of a kind of object, including the operations that can be performed on objects of that interface and the parameters to each operation. A specific instance of an object is identified within a distributed object system by a unique identifier called an object reference.
Many of the requisite files in the completed software product can be built in various stages, thus requiring a plurality of sources and/or generated/built files. Files generated by one part of the build process can be required as inputs to one or more other parts of the build process, and the build machines can have complete copies of the source files. For example, if a build machine A generates a file A1, and a build machine B generates a file B2, build machine A may need file B1 to produce a file A2, and build machine B may need file A1 to produce file B2. At the same time, objects loaded on a machine can become corrupted or even fail to properly load during a read, validation or execution.
In a distributed object system, a client can also create a proxy that images an object on a server. Typically, a proxy is an image of an object where the object resides in a different logical and/or physical entity (e.g., machine, process, network, and the like.) In distributed systems, proxies can facilitate local processing to improve efficiency. The object that is imaged can implement a first set of one or more interface and base class data types. Moreover, such objects can require that a proxy load a first set of one or more attributes and/or methods to image the object. When the proxy is created for the object that is imaged, the interface and base data types implemented by the object are typically automatically loaded into the client. Nonetheless and as explained earlier, objects loaded on a machine can become corrupted or even fail to properly load during a read, validation, or execution.
Distributing files necessary to complete the build of the software system to the build machines involved in the build is network bandwidth intensive, requiring large transfers of information, some of which can become corrupted or even unavailable during an up load. For example, one build machine can only need ten files to complete its portion of the build, while another build machine can need two hundred files to complete its portion of the build, and yet one missing file or object can hinder a proper operation of a requisite application, e.g., by failing to properly load during a read, validation, or execution.
Therefore, there is a need to overcome the aforementioned exemplary deficiencies associated with conventional systems and devices.